/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package monitoring.dbpersistence.util;

import monitoring.beans.database.MonitoringDB;
import monitoring.beans.util.ImportMessage;

/**
 *
 * @author allankv
 */
public class Validation {

    private ImportMessage msg = new ImportMessage();

    ;

    public Validation() {
    }

    public boolean isValidOneToN(String s) {
        return s != null && s.length() > 1;
    }

    public boolean requiredFields(MonitoringDB db) {
        if (db.getRecordLevelElement().getInstitutionCode().getIdInstitutionCode() != null
                && db.getRecordLevelElement().getCollectionCode().getIdCollectionCode() != null
                && db.getOcurrenceElement().getCatalogNumber().trim().length() > 0) {
            return true;
        }
        msg.setType(ImportMessage.TYPE_PROBLEM);
        msg.setMessage("Campos obrigatórios faltantes.");
        msg.setColumn("Código da Instituição, Código da Coleção ou/e Número do Catálogo");
        msg.setImplications(ImportMessage.IMPL_RECORD_OMIT);
        msg.setRow(db.getRow());
        return false;
    }

    public ImportMessage getMsg() {
        return this.msg;
    }

    public void setMsg(ImportMessage msg) {
        this.msg = msg;
    }

    public boolean isValidColorPanTrap(String s) {
        if ((s.trim().toUpperCase().equals("AMARELO")
                || s.trim().toUpperCase().equals("AZUL")
                || s.trim().toUpperCase().equals("BRANCO"))) {
            return true;
        } else {
            msg.setType(ImportMessage.TYPE_WARNING);
            msg.setImplications(ImportMessage.IMPL_FIELD_OMIT);
            msg.setColumn("Cor do PanTrap");
            msg.setMessage("O termpo deve estar no vocabulário fechado (Ex.: Amarelo, Azul ou Branco).");
            return false;
        }

    }

    public boolean isValidPredominantBiome(String s) {
        if ((s.trim().toUpperCase().equals("MATA ATLÂNTICA")
                || s.trim().toUpperCase().equals("AMAZÔNIA")
                || s.trim().toUpperCase().equals("CERRADO")
                || s.trim().toUpperCase().equals("CAATINGA")
                || s.trim().toUpperCase().equals("PAMPA (CAMPOS SULINOS)")
                || s.trim().toUpperCase().equals("PANTANAL"))) {
            return true;
        } else {
            msg.setType(ImportMessage.TYPE_WARNING);
            msg.setImplications(ImportMessage.IMPL_FIELD_OMIT);
            msg.setColumn("Bioma predominante");
            msg.setMessage("O termpo deve estar no vocabulário fechado (Ex.: Mata atlântica, amazônia ou cerrado).");
            return false;
        }

    }

    public boolean isValidSupportType(String s) {

        if ((s.trim().toUpperCase().equals("PVC/TRIPÉ")
                || s.trim().toUpperCase().equals("COPA DE ÁRVORE")
                || s.trim().toUpperCase().equals("FIXO EM PLANTA")
                || s.trim().toUpperCase().equals("SOBRE O SOLO"))) {
            return true;
        } else {
            msg.setType(ImportMessage.TYPE_WARNING);
            msg.setImplications(ImportMessage.IMPL_FIELD_OMIT);
            msg.setColumn("Tipo de suporte");
            msg.setMessage("O termpo deve estar no vocabulário fechado (Ex.: PVC/Tripé, Copa de árvore ou fixo em planta).");
            return false;
        }

    }

    public boolean isValidSurrondingsVegetation(String s) {


        if ((s.trim().toUpperCase().equals("AGRICULTURAS (PREDOMINÂNCIA MÁXIMA)")
                || s.trim().toUpperCase().equals("FLORESTA ESTACIONAL DECIDUAL")
                || s.trim().toUpperCase().equals("FLORESTA ESTACIONAL SEMIDECIDUAL")
                || s.trim().toUpperCase().equals("FLORESTA OMBRÓFILA ABERTA")
                || s.trim().toUpperCase().equals("FLORESTA OMBRÓFILA DENSA")
                || s.trim().toUpperCase().equals("FLORESTA ONBRÓFILA MISTA")
                || s.trim().toUpperCase().equals("MANGUESAL")
                || s.trim().toUpperCase().equals("PASTAGENS (PREDOMINÂNCIA MÁXIMA)")
                || s.trim().toUpperCase().equals("SAVANA (CAMPO-CERRADO)")
                || s.trim().toUpperCase().equals("SAVANA (CERRADÃO)")
                || s.trim().toUpperCase().equals("SAVANA (CERRADO)")
                || s.trim().toUpperCase().equals("SAVANA-ESTÉPICA (CAATINGA)")
                || s.trim().toUpperCase().equals("CAMPINARANA (CAMPINAS)")
                || s.trim().toUpperCase().equals("ESTEPES"))) {
            return true;
        } else {
            msg.setType(ImportMessage.TYPE_WARNING);
            msg.setImplications(ImportMessage.IMPL_FIELD_OMIT);
            msg.setColumn("Vegetação proximal");
            msg.setMessage("O termpo deve estar no vocabulário fechado (Ex.: Floresta estacional decidual ou Estepes).");
            return false;
        }

    }

    public boolean isValidSurrondingsCulture(String s) {

        if ((s.trim().toUpperCase().equals("ENTORNO DA CULTURA")
                || s.trim().toUpperCase().equals("INSERIDO NA CULTURA"))) {
            return true;
        } else {
            msg.setType(ImportMessage.TYPE_WARNING);
            msg.setImplications(ImportMessage.IMPL_FIELD_OMIT);
            msg.setColumn("Entorno/Cultura");
            msg.setMessage("O termpo deve estar no vocabulário fechado (Ex.: Entorno da cultura ou inserido na cultura).");
            return false;
        }

    }

    public boolean isValidSex(String s) {
        
        if ((s.trim().toUpperCase().equals("M")
                || s.trim().toUpperCase().equals("F"))) {
            return true;
        } else {
            msg.setType(ImportMessage.TYPE_WARNING);
            msg.setImplications(ImportMessage.IMPL_FIELD_OMIT);
            msg.setColumn("Sexo");
            msg.setMessage("O termpo deve estar no vocabulário fechado (Ex.: M ou F).");
            return false;
        }

    }
}
